
// 给Date对象添加getYMD方法，获取字符串形式的年月日
Date.prototype.getYMD = function(format){
  switch (format) {
    case 'YYYY-MM-DD':
      // 将结果放在数组中，使用数组的join方法返回连接起来的字符串，并给不足两位的天和月十位上补零
      return [this.getFullYear(), fz(this.getMonth() + 1), fz(this.getDate())].join("-");
      break;
    case 'MM-DD':
      // 将结果放在数组中，使用数组的join方法返回连接起来的字符串，并给不足两位的天和月十位上补零
      return [fz(this.getMonth() + 1), fz(this.getDate())].join("-");
      break;
    case 'MM-DD 周X':
        // 将结果放在数组中，使用数组的join方法返回连接起来的字符串，并给不足两位的天和月十位上补零
        return [fz(this.getMonth() + 1), fz(this.getDate())].join("-") + ' 周' + numToChar(this.getDay());
        break;
    default:
      // 将结果放在数组中，使用数组的join方法返回连接起来的字符串，并给不足两位的天和月十位上补零
      return [this.getFullYear(), fz(this.getMonth() + 1), fz(this.getDate())].join("-");
      break;
  }
}

// 给String对象添加getDate方法，使字符串形式的日期返回为Date型的日期
String.prototype.getDate = function(){
  var strArr = this.split('-');
  return new Date(strArr[0], strArr[1] - 1, strArr[2]);
}

export function formatDate(date, format) {
  switch (format) {
    case 'MM-DD':
      let time = date.split('-')
      return [time[1], time[2]].join("-");
      break;
    case 'MM-DD 周X':
      let week = numToChar(new Date(date).getDay())
      let month = date.split('-')
      return [month[1], month[2]].join("-") + ' 周' + week;
        break;
    default:
      return date;
      break;
  }
}

// 给月和天，不足两位的前面补0
function fz(num) {
	if (+num < 10) {
		num = "0" + num;
	}
	return num
}

function numToChar (num) {
  switch (num) {
    case 0:
      return '日'
      break;
    case 1:
      return '一'
      break;
    case 2:
      return '二'
      break;
    case 3:
      return '三'
      break;
    case 4:
      return '四'
      break;
    case 5:
      return '五'
      break;
    case 6:
      return '六'
      break;
    default:
      break;
  }
}

// 获取间隔天数
// 例如：输入('2020-01-01', '2020-02-02'), 输出 ['2020-01-01','2020-01-02',....,'2020-02-01', '2020-02-02']
// format按照固定格式输出：支持YYYY-MM-DD,MMM-DD，MM-DD 周X；
export function getDays (day1, day2, format) {
	// 获取入参字符串形式日期的Date型日期
	var st = day1.getDate();
	var et = day2.getDate();
	
	var retArr = [];
	
	// 获取开始日期的年，月，日
	var yyyy = st.getFullYear(),
		mm = st.getMonth(),
		dd = st.getDate();
	
	// 循环
	while (st.getTime() != et.getTime()) {
		retArr.push(st.getYMD(format));
		
		// 使用++dd进行天数的自增
		st = new Date(yyyy, mm, ++dd);
	}
 
	// 将结束日期的天放进数组
	retArr.push(et.getYMD(format));
  
  return retArr
}
 